home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 2 / Atari Forever 2.zip / Atari Forever 2.iso / serie_p / p_2244 / snake / snake.lst < prev    next >
File List  |  1991-06-08  |  35KB  |  1,395 lines

  1. ' *****************************************************************************
  2. ' **                                SNAKE                                    **
  3. ' **                          by Christoph Berger                            **
  4. ' **                          In der Eselsweide 4                            **
  5. ' **                          W-6706 Wachenheim                              **
  6. ' *****************************************************************************
  7. aufl%=XBIOS(4)
  8. IF aufl%<2
  9.   ALERT 1,"Nur hohe Auflösung!",1,"Tschüß",gjddmtu%
  10.   QUIT
  11. ENDIF
  12. DIM feld!(160,99),position_x%(3),position_y%(3),richtung_x%(2),richtung_y%(2),speed%(2)
  13. DIM mnpkt$(62),name$(99),gewinn%(99),gewinner%(99,99),gespielt!(99,99),platzierung%(99)
  14. DIM hind!(160,99),h_anzahl%(160),gesp!(99),es!(160,99),futter%(2),fuu%(2)
  15. GRAPHMODE 1
  16. OPEN "I",#1,"\SNAKE\SNAKE2.PIC"
  17. bild2$=INPUT$(2812,#1)
  18. CLOSE #1
  19. OPEN "I",#1,"\SNAKE\SNAKE.PIC"
  20. bild$=INPUT$(7750,#1)
  21. FOR i%=-8 TO 400 STEP 100
  22.   PUT 90,i%,bild$,2
  23.   IF EVEN((i%+8)/100)=-1
  24.     PUT 90+1,i%+1,bild$,6
  25.   ENDIF
  26. NEXT i%
  27. CLOSE #1
  28. DEFTEXT 1,3,2700,26
  29. TEXT 10,0,400,"1991 by B.G."
  30. DEFTEXT ,1,,
  31. TEXT 600,0,400,"V 2.5  V 2.5  V 2.5"
  32. VOID INP(2)
  33. CLS
  34. DEFTEXT 1,0,0,13
  35. GRAPHMODE 1
  36. PBOX 0,0,4,4
  37. GET 0,0,4,4,a$
  38. CLS
  39. DEFFILL 1,2,4
  40. PBOX 0,0,4,4
  41. GET 0,0,4,4,b$
  42. CLS
  43. BOX 0,0,4,4
  44. GET 0,0,4,4,c$
  45. k_x%=160
  46. k_y%=99
  47. anzahl%=2
  48. wieoft%=3
  49. pause$="50"
  50. pause%=50
  51. hind$="0"
  52. efutter%=25
  53. tfutter%=10
  54. hfutter%=9999
  55. FOR i%=1 TO 99
  56.   name$(i%)="Spieler "+STR$(i%)
  57. NEXT i%
  58. VOID XBIOS(35,0,0)
  59. i%=0
  60. RESTORE m.datas
  61. DO
  62.   READ mnpkt$(i%)
  63.   EXIT IF i%=62
  64.   INC i%
  65. LOOP
  66. tempo%=24
  67. meh%=29
  68. fre%=42
  69. sys%=56
  70. GOSUB hprogramm
  71. PROCEDURE hprogramm
  72.   CLS
  73.   ON MENU KEY GOSUB help
  74.   MENU mnpkt$()
  75.   MENU tempo%,1
  76.   MENU meh%,1
  77.   MENU sys%,1
  78.   MENU fre%,1
  79.   IF egal!=0
  80.     MENU 59,0
  81.   ELSE
  82.     MENU 59,1
  83.   ENDIF
  84.   MENU 62+joy!,1
  85.   OPENW 0
  86.   PUT 70,200,bild$
  87.   PUT 100,100,bild2$
  88.   TEXT 160,330,"F1 für Hilfe über das Menü"
  89.   TEXT 160,350,"F2 für Hilfe über das Spiel"
  90.   TEXT 160,370,"F3 für Hilfe über den Editor"
  91.   DO
  92.     ON MENU
  93.     IF MENU(0)>0
  94.       IF MENU(0)=1
  95.         @desk
  96.       ENDIF
  97.       IF MENU(0)=10
  98.         GOSUB spiel
  99.       ENDIF
  100.       IF MENU(0)>10 AND MENU(0)<17
  101.         MENU meh%,0
  102.         MENU fre%,0
  103.         MENU 39,1
  104.         IF hind%<>-1 OR fu%>0
  105.           fu!=0
  106.           ARRAYFILL es!(),0
  107.           ARRAYFILL hind!(),0
  108.           ARRAYFILL h_anzahl%(),0
  109.         ENDIF
  110.         fu%=0
  111.         hind%=-1
  112.         meh%=39
  113.         fre%=0
  114.         IF MENU(0)=12
  115.           @edieren
  116.         ENDIF
  117.         IF MENU(0)=14
  118.           CLS
  119.           @laden
  120.         ENDIF
  121.         IF MENU(0)=15
  122.           @speichern
  123.         ENDIF
  124.         CLS
  125.         DEFMOUSE 0
  126.         PUT 70,200,bild$
  127.         PUT 100,100,bild2$
  128.         TEXT 160,330,"F1 für Hilfe über das Menü"
  129.         TEXT 160,350,"F2 für Hilfe über das Spiel"
  130.         TEXT 160,370,"F3 für Hilfe über den Editor"
  131.       ENDIF
  132.       IF MENU(0)=17
  133.         ALERT 3," Willst du mich  | wirklich verlassen ?|",1," NEIN |  JA  ",dummy%
  134.         IF dummy%=2
  135.           ALERT 1,"OOOOOOHHHH !!!!!|HEEEEUUUUL !!!!!",1,"Shut up",sdv%
  136.           VOID XBIOS(35,1,4)
  137.           QUIT
  138.         ELSE
  139.           ALERT 1," Eine weise | Entscheidung !",1," Return ",dgbv%
  140.         ENDIF
  141.       ENDIF
  142.       IF MENU(0)=20
  143.         MENU 20,1
  144.         MENU tempo%,0
  145.         tempo%=20
  146.         PRINT "Gib bitte eine Geschwindigkeit zwischen 0 ( hyperschnell )-999 ( --> OMA ) ein."
  147.         pause$=STR$(pause%)
  148.         FORM INPUT 3 AS pause$
  149.         pause%=VAL(pause$)
  150.         CLS
  151.         PUT 70,200,bild$
  152.         PUT 100,100,bild2$
  153.         TEXT 160,330,"F1 für Hilfe über das Menü"
  154.         TEXT 160,350,"F2 für Hilfe über das Spiel"
  155.         TEXT 160,370,"F3 für Hilfe über den Editor"
  156.       ENDIF
  157.       IF MENU(0)=22
  158.         MENU tempo%,0
  159.         MENU 22,1
  160.         tempo%=22
  161.         pause%=0
  162.       ENDIF
  163.       IF MENU(0)=23
  164.         MENU tempo%,0
  165.         MENU 23,1
  166.         tempo%=23
  167.         pause%=25
  168.       ENDIF
  169.       IF MENU(0)=24
  170.         MENU tempo%,0
  171.         MENU 24,1
  172.         tempo%=24
  173.         pause%=50
  174.       ENDIF
  175.       IF MENU(0)=25
  176.         MENU tempo%,0
  177.         MENU 25,1
  178.         tempo%=25
  179.         pause%=100
  180.       ENDIF
  181.       IF MENU(0)=26
  182.         MENU tempo%,0
  183.         MENU 26,1
  184.         tempo%=26
  185.         pause%=250
  186.       ENDIF
  187.       IF MENU(0)=29
  188.         ARRAYFILL hind!(),0
  189.         MENU meh%,0
  190.         MENU 29,1
  191.         hind%=0
  192.         meh%=29
  193.       ENDIF
  194.       IF MENU(0)=31
  195.         MENU meh%,0
  196.         MENU 31,1
  197.         hind$=STR$(hind%)
  198.         PRINT "Gib bitte die Anzahl der Hindernisse ein !"
  199.         FORM INPUT 4 AS hind$
  200.         hind%=VAL(hind$)
  201.         meh%=31
  202.         CLS
  203.         PUT 70,200,bild$
  204.         PUT 100,100,bild2$
  205.         TEXT 160,330,"F1 für Hilfe über das Menü"
  206.         TEXT 160,350,"F2 für Hilfe über das Spiel"
  207.         TEXT 160,370,"F3 für Hilfe über den Editor"
  208.       ENDIF
  209.       IF MENU(0)=33
  210.         MENU meh%,0
  211.         MENU 33,1
  212.         hind%=25
  213.         meh%=33
  214.       ENDIF
  215.       IF MENU(0)=34
  216.         MENU meh%,0
  217.         MENU 34,1
  218.         hind%=50
  219.         meh%=34
  220.       ENDIF
  221.       IF MENU(0)=35
  222.         MENU meh%,0
  223.         MENU 35,1
  224.         hind%=100
  225.         meh%=35
  226.       ENDIF
  227.       IF MENU(0)=36
  228.         MENU meh%,0
  229.         MENU 36,1
  230.         hind%=250
  231.         meh%=36
  232.       ENDIF
  233.       IF MENU(0)=37
  234.         MENU meh%,0
  235.         MENU 37,1
  236.         hind%=750
  237.         meh%=37
  238.       ENDIF
  239.       IF MENU(0)=39
  240.         MENU meh%,0
  241.         MENU fre%,0
  242.         MENU 39,1
  243.         meh%=39
  244.         fre%=0
  245.         fu%=0
  246.         hind%=-1
  247.       ENDIF
  248.       IF MENU(0)=42
  249.         ARRAYFILL es!(),0
  250.         MENU fre%,0
  251.         MENU 42,1
  252.         fre%=42
  253.         fu%=0
  254.         fu!=0
  255.       ENDIF
  256.       IF MENU(0)=44 AND hind%<>-1
  257.         MENU fre%,0
  258.         MENU 44,1
  259.         fu$=STR$(fu%)
  260.         PRINT "Gib bitte die Anzahl des Futters ein !"
  261.         FORM INPUT 4 AS fu$
  262.         fu%=VAL(fu$)
  263.         fre%=44
  264.         IF fu%>0
  265.           fu!=-1
  266.         ELSE
  267.           fu!=0
  268.         ENDIF
  269.         CLS
  270.         PUT 70,200,bild$
  271.         PUT 100,100,bild2$
  272.         TEXT 160,330,"F1 für Hilfe über das Menü"
  273.         TEXT 160,350,"F2 für Hilfe über das Spiel"
  274.         TEXT 160,370,"F3 für Hilfe über den Editor"
  275.       ENDIF
  276.       IF MENU(0)>45 AND MENU(0)<51 AND hind%<>-1
  277.         IF MENU(0)=46
  278.           MENU fre%,0
  279.           MENU 46,1
  280.           fre%=46
  281.           fu%=50
  282.         ENDIF
  283.         IF MENU(0)=47
  284.           MENU fre%,0
  285.           MENU 47,1
  286.           fre%=47
  287.           fu%=100
  288.         ENDIF
  289.         IF MENU(0)=48
  290.           MENU fre%,0
  291.           MENU 48,1
  292.           fre%=48
  293.           fu%=200
  294.         ENDIF
  295.         IF MENU(0)=49
  296.           MENU fre%,0
  297.           MENU 49,1
  298.           fre%=49
  299.           fu%=500
  300.         ENDIF
  301.         IF MENU(0)=50
  302.           MENU fre%,0
  303.           MENU 50,1
  304.           fre%=50
  305.           fu%=800
  306.         ENDIF
  307.         fu!=-1
  308.       ENDIF
  309.       IF MENU(0)=52
  310.         @fpara
  311.       ENDIF
  312.       IF MENU(0)=55
  313.         MENU sys%,0
  314.         MENU 55,1
  315.         sys!=-1
  316.         sys%=55
  317.         ueben!=0
  318.       ENDIF
  319.       IF MENU(0)=56
  320.         MENU sys%,0
  321.         MENU 56,1
  322.         sys!=0
  323.         sys%=56
  324.         ueben!=0
  325.       ENDIF
  326.       IF MENU(0)=57
  327.         MENU sys%,0
  328.         MENU 57,1
  329.         ueben!=-1
  330.         sys%=57
  331.       ENDIF
  332.       IF MENU(0)=59
  333.         IF egal!=-1
  334.           MENU 59,0
  335.           egal!=0
  336.         ELSE
  337.           MENU 59,1
  338.           egal!=-1
  339.         ENDIF
  340.       ENDIF
  341.       IF MENU(0)=61
  342.         MENU 61,1
  343.         MENU 62,0
  344.         joy!=TRUE
  345.       ENDIF
  346.       IF MENU(0)=62
  347.         MENU 62,1
  348.         MENU 61,0
  349.         joy!=FALSE
  350.       ENDIF
  351.       MENU OFF
  352.     ENDIF
  353.   LOOP
  354. RETURN
  355. PROCEDURE help
  356.   IF MENU(14)=15104 OR MENU(14)=15360 OR MENU(14)=15616
  357.     CLS
  358.     IF MENU(14)=15104
  359.       @hmen
  360.     ENDIF
  361.     IF MENU(14)=15360
  362.       @hspiel
  363.     ENDIF
  364.     IF MENU(14)=15616
  365.       @heditor
  366.     ENDIF
  367.     VOID INP(2)
  368.     CLS
  369.     PUT 70,200,bild$
  370.     PUT 100,100,bild2$
  371.     TEXT 160,330,"F1 für Hilfe über das Menü"
  372.     TEXT 160,350,"F2 für Hilfe über das Spiel"
  373.     TEXT 160,370,"F3 für Hilfe über den Editor"
  374.   ENDIF
  375. RETURN
  376. PROCEDURE desk
  377.   CLOSEW 0
  378.   MENU KILL
  379.   CLS
  380.   DEFLINE 1,5,0,0
  381.   BOX 1,21,659,399
  382.   FOR i%=1 TO 2
  383.     speed%(i%)=1
  384.     richtung_y%(i%)=0
  385.     position_x%(i%)=80
  386.     position_y%(i%)=52
  387.   NEXT i%
  388.   richtung_x%(1)=1
  389.   richtung_x%(2)=-1
  390.   k%=0
  391.   DO
  392.     INC k%
  393.     IF k%=80
  394.       richtung_y%(1)=-1
  395.       richtung_x%(2)=0
  396.       richtung_x%(1)=0
  397.       richtung_y%(2)=-1
  398.     ENDIF
  399.     IF k%=125
  400.       richtung_y%(1)=0
  401.       richtung_x%(1)=-1
  402.     ENDIF
  403.     IF k%=126
  404.       richtung_x%(2)=1
  405.       richtung_y%(2)=0
  406.     ENDIF
  407.     IF k%=204
  408.       richtung_y%(1)=1
  409.       richtung_x%(2)=0
  410.       richtung_x%(1)=0
  411.       richtung_y%(2)=1
  412.     ENDIF
  413.     IF k%=230
  414.       richtung_x%(1)=1
  415.       richtung_y%(1)=0
  416.     ENDIF
  417.     IF k%=232
  418.       richtung_x%(2)=1
  419.       richtung_y%(2)=0
  420.     ENDIF
  421.     IF k%=270
  422.       richtung_y%(1)=1
  423.       richtung_x%(1)=0
  424.     ENDIF
  425.     IF k%=272
  426.       richtung_x%(2)=0
  427.       richtung_y%(2)=0
  428.       richtung_y%(1)=0
  429.       richtung_x%(1)=-1
  430.     ENDIF
  431.     FOR i%=1 TO 2
  432.       ADD position_x%(i%),richtung_x%(i%)
  433.       ADD position_y%(i%),richtung_y%(i%)
  434.       IF i%=1
  435.         PUT position_x%(i%)*4,position_y%(i%)*4,a$
  436.       ELSE
  437.         PUT position_x%(i%)*4,position_y%(i%)*4,b$
  438.       ENDIF
  439.     NEXT i%
  440.     IF k%>260
  441.       PAUSE 2
  442.     ENDIF
  443.     EXIT IF k%=272
  444.   LOOP
  445.   PUT 70,220,bild$
  446.   DEFTEXT 1,0,0,13
  447.   TEXT 20,350,600,CHR$(189)+"1991 von Christoph Berger, In der Eselsweide 4, 6706 Wachenheim"
  448.   DEFTEXT 1,1,1,13
  449.   TEXT 20,370,"Dieses Programm ist frei kopierbar."
  450.   DEFTEXT 1,0,0,13
  451.   TEXT 20,390,600,"V 2.5  V 2.5  V 2.5  V 2.5  V 2.5"
  452.   VOID INP(2)
  453.   @hprogramm
  454. RETURN
  455. PROCEDURE speichern
  456.   FILESELECT "\*.HND",".HND",datei$
  457.   fu!=0
  458.   IF datei$<>""
  459.     OPEN "O",#1,datei$
  460.     FOR i%=k_x% TO g_x%
  461.       an%=0
  462.       FOR t%=k_y% TO g_y%
  463.         IF hind!(i%,t%)=-1
  464.           INC an%
  465.           PRINT #1,i%
  466.           PRINT #1,t%
  467.         ENDIF
  468.         IF es!(i%,t%)=-1
  469.           fu!=-1
  470.           INC an%
  471.           PRINT #1,i%+200
  472.           PRINT #1,t%
  473.         ENDIF
  474.         EXIT IF an%=h_anzahl%(i%)
  475.       NEXT t%
  476.     NEXT i%
  477.     IF fu!=-1
  478.       PRINT #1,efutter%+400
  479.       PRINT #1,tfutter%+400
  480.       PRINT #1,hfutter%+400
  481.     ENDIF
  482.     CLOSE #1
  483.   ENDIF
  484. RETURN
  485. PROCEDURE laden
  486.   FILESELECT "\*.HND",datei$,datei$
  487.   IF EXIST(datei$)
  488.     fu!=0
  489.     g_x%=0
  490.     g_y%=0
  491.     k_x%=160
  492.     k_y%=99
  493.     ARRAYFILL h_anzahl%(),0
  494.     ARRAYFILL hind!(),0
  495.     ARRAYFILL es!(),0
  496.     OPEN "I",#1,datei$
  497.     WHILE NOT EOF(#1)
  498.       INPUT #1,hind_x%
  499.       INPUT #1,hind_y%
  500.       IF hind_x%>199
  501.         IF hind_x%>399
  502.           efutter%=hind_x%-400
  503.           tfutter%=hind_y%-400
  504.           hind_x%=80
  505.           hind_y%=52
  506.           INPUT #1,hfutter%
  507.           SUB hfutter%,400
  508.         ELSE
  509.           fu!=-1
  510.           SUB hind_x%,200
  511.           es!(hind_x%,hind_y%)=-1
  512.           PUT hind_x%*4,hind_y%*4,c$
  513.           INC h_anzahl%(hind_x%)
  514.         ENDIF
  515.       ELSE
  516.         INC h_anzahl%(hind_x%)
  517.         hind!(hind_x%,hind_y%)=-1
  518.         PUT hind_x%*4,hind_y%*4,b$
  519.       ENDIF
  520.       IF hind_x%>g_x%
  521.         g_x%=hind_x%
  522.       ENDIF
  523.       IF hind_x%<k_x%
  524.         k_x%=hind_x%
  525.       ENDIF
  526.       IF hind_y%>g_y%
  527.         g_y%=hind_y%
  528.       ENDIF
  529.       IF hind_y%<k_y%
  530.         k_y%=hind_y%
  531.       ENDIF
  532.     WEND
  533.     CLOSE #1
  534.   ENDIF
  535. RETURN
  536. PROCEDURE edieren
  537.   CLS
  538.   DEFMOUSE modus!*-3
  539.   FOR i%=k_x% TO g_x%
  540.     an%=0
  541.     FOR t%=k_y% TO g_y%
  542.       IF hind!(i%,t%)=-1
  543.         INC an%
  544.         PUT i%*4,t%*4,b$
  545.       ENDIF
  546.       IF es!(i%,t%)=-1
  547.         INC an%
  548.         PUT i%*4,t%*4,c$
  549.       ENDIF
  550.       EXIT IF an%=h_anzahl%(i%)
  551.     NEXT t%
  552.   NEXT i%
  553.   DEFLINE 1,5,0,0
  554.   CLOSEW 0
  555.   BOX 1,21,659,399
  556.   OPENW 0
  557.   PUT 316,208,a$,6
  558.   PUT 324,208,a$,6
  559.   DO
  560.     MOUSE x%,y%,k%
  561.     k$=INKEY$
  562.     hind_x%=FIX((x%+2)/4)
  563.     hind_y%=FIX((y%+2)/4)+4
  564.     IF k$="m"
  565.       modus!=NOT modus!
  566.       DEFMOUSE modus!*-3
  567.       SOUND 1,10,10,4,8
  568.       SOUND 0,0
  569.     ENDIF
  570.     IF k$="p"
  571.       SGET bild3$
  572.       PRINT AT(1,1),hind_x%-80,hind_y%-52
  573.       VOID INP(2)
  574.       SPUT bild3$
  575.     ENDIF
  576.     IF k$="y"
  577.       tm!=modus!
  578.       FOR i%=k_x% TO g_x%
  579.         an%=0
  580.         FOR t%=k_y% TO 52
  581.           IF hind!(i%,t%)=-1 OR es!(i%,t%)=-1
  582.             IF hind!(i%,t%)=-1
  583.               modus!=0
  584.             ELSE
  585.               modus!=-1
  586.             ENDIF
  587.             hind_x%=i%
  588.             hind_y%=104-t%
  589.             @setzen
  590.             INC an%
  591.           ENDIF
  592.           EXIT IF an%=h_anzahl%(i%)
  593.         NEXT t%
  594.       NEXT i%
  595.       modus!=tm!
  596.     ENDIF
  597.     IF k$="x"
  598.       tm!=modus!
  599.       FOR i%=k_x% TO 80
  600.         an%=0
  601.         FOR t%=k_y% TO g_y%
  602.           IF hind!(i%,t%)=-1 OR es!(i%,t%)=-1
  603.             IF hind!(i%,t%)=-1
  604.               modus!=0
  605.             ELSE
  606.               modus!=-1
  607.             ENDIF
  608.             hind_x%=160-i%
  609.             hind_y%=t%
  610.             @setzen
  611.             INC an%
  612.           ENDIF
  613.           EXIT IF an%=h_anzahl%(i%)
  614.         NEXT t%
  615.       NEXT i%
  616.       modus!=tm!
  617.     ENDIF
  618.     IF hind_x%<160 AND hind_y%<99 AND hind_y%>5 AND hind_x%>0 AND k%>0
  619.       IF hind!(hind_x%,hind_y%)=-1 OR es!(hind_x%,hind_y%)=-1 AND k%=2
  620.         hind!(hind_x%,hind_y%)=0
  621.         es!(hind_x%,hind_y%)=0
  622.         PUT hind_x%*4,hind_y%*4,a$
  623.         PUT hind_x%*4,hind_y%*4,a$,6
  624.         DEC h_anzahl%(hind_x%)
  625.       ENDIF
  626.       IF hind!(hind_x%,hind_y%)=0 AND es!(hind_x%,hind_y%)=0 AND k%=1
  627.         @setzen
  628.       ENDIF
  629.     ENDIF
  630.     IF k$="c"
  631.       ALERT 1,"Wirklich alles|löschen ?????",1,"NEIN| JA ",dummy%
  632.       IF dummy%=2
  633.         CLS
  634.         DEFLINE 1,5,0,0
  635.         CLOSEW 0
  636.         BOX 1,21,659,399
  637.         OPENW 0
  638.         PUT 316,208,a$,6
  639.         PUT 324,208,a$,6
  640.         ARRAYFILL es!(),0
  641.         ARRAYFILL hind!(),0
  642.         ARRAYFILL h_anzahl%(),0
  643.         g_x%=0
  644.         g_y%=0
  645.         k_x%=160
  646.         k_y%=99
  647.         fu!=0
  648.       ENDIF
  649.     ENDIF
  650.     IF k$="f"
  651.       ALERT 1,"Wirklich alle |Futterpunkte löschen ?",1," JA |NEIN",dummy%
  652.       IF dummy%=1
  653.         FOR i%=k_x% TO g_x%
  654.           an%=0
  655.           FOR t%=k_y% TO g_y%
  656.             IF es!(i%,t%)=-1
  657.               DEC h_anzahl%(i%)
  658.               PUT i%*4,t%*4,a$
  659.               PUT i%*4,t%*4,a$,6
  660.             ENDIF
  661.             IF hind!(i%,t%)=-1
  662.               INC an%
  663.             ENDIF
  664.             EXIT IF an%=h_anzahl%(i%)
  665.           NEXT t%
  666.         NEXT i%
  667.         ARRAYFILL es!(),0
  668.         fu!=0
  669.       ELSE
  670.         IF NOT EVEN(h_anzahl%(52))
  671.           CLS
  672.           PRINT "Dann löschen wir halt alles!"
  673.           PAUSE 50
  674.           CLS
  675.           DEFLINE 1,5,0,0
  676.           CLOSEW 0
  677.           BOX 1,21,659,399
  678.           OPENW 0
  679.           PUT 316,208,a$,6
  680.           PUT 324,208,a$,6
  681.           DO
  682.             EXIT IF INKEY$<>"" OR MOUSEK>0
  683.           LOOP
  684.           FOR i%=k_x% TO g_x%
  685.             an%=0
  686.             FOR t%=k_y% TO g_y%
  687.               IF hind!(i%,t%)=-1
  688.                 INC an%
  689.                 PUT i%*4,t%*4,b$
  690.               ENDIF
  691.               IF es!(i%,t%)=-1
  692.                 INC an%
  693.                 PUT i%*4,t%*4,c$
  694.               ENDIF
  695.               EXIT IF an%=h_anzahl%(i%)
  696.             NEXT t%
  697.           NEXT i%
  698.           ALERT 1," War nur 'n Gag",1,"Ach so !",kjefgfer%
  699.         ENDIF
  700.       ENDIF
  701.     ENDIF
  702.     IF k$="h"
  703.       ALERT 1,"Wirklich alle |Hindernisse löschen ?",1," JA |NEIN",dummy%
  704.       IF dummy%=1
  705.         FOR i%=k_x% TO g_x%
  706.           an%=0
  707.           FOR t%=k_y% TO g_y%
  708.             IF hind!(i%,t%)=-1
  709.               INC h_anzahl%(i%)
  710.               PUT i%*4,t%*4,a$
  711.               PUT i%*4,t%*4,a$,6
  712.             ENDIF
  713.             IF es!(i%,t%)=-1
  714.               INC an%
  715.             ENDIF
  716.             EXIT IF an%=h_anzahl%(i%)
  717.           NEXT t%
  718.         NEXT i%
  719.         ARRAYFILL hind!(),0
  720.       ENDIF
  721.     ENDIF
  722.     EXIT IF k$=" "
  723.   LOOP
  724.   CLS
  725. RETURN
  726. PROCEDURE setzen
  727.   IF hind_x%>g_x%
  728.     g_x%=hind_x%
  729.   ENDIF
  730.   IF hind_x%<k_x%
  731.     k_x%=hind_x%
  732.   ENDIF
  733.   IF hind_y%>g_y%
  734.     g_y%=hind_y%
  735.   ENDIF
  736.   IF hind_y%<k_y%
  737.     k_y%=hind_y%
  738.   ENDIF
  739.   INC h_anzahl%(hind_x%)
  740.   IF modus!=-1
  741.     fu!=-1
  742.     hind!(hind_x%,hind_y%)=0
  743.     es!(hind_x%,hind_y%)=-1
  744.     PUT hind_x%*4,hind_y%*4,c$
  745.   ELSE
  746.     es!(hind_x%,hind_y%)=0
  747.     hind!(hind_x%,hind_y%)=-1
  748.     PUT hind_x%*4,hind_y%*4,b$
  749.   ENDIF
  750. RETURN
  751. PROCEDURE spiel
  752.   ARRAYFILL gewinn%(),0
  753.   CLOSEW 0
  754.   MENU KILL
  755.   CLS
  756.   go_out_out!=FALSE
  757.   IF ueben!=-1
  758.     PRINT "Wie oft ?"
  759.     wi$=STR$(wieoft%)
  760.     FORM INPUT 2 AS wi$
  761.     wieoft%=VAL(wi$)
  762.     FOR g%=1 TO wieoft%
  763.       EXIT IF go_out_out!=TRUE
  764.       CLS
  765.       PRINT g%;". Durchgang beim Üben von insgesamt ";wieoft%;" ."
  766.       VOID INP(2)
  767.       @game
  768.     NEXT g%
  769.   ELSE
  770.     PRINT "Gib bitte die Anzahl der Spieler ein."
  771.     FORM INPUT 2 AS anzahl$
  772.     anzahl%=VAL(anzahl$)
  773.     IF anzahl%<2
  774.       anzahl%=2
  775.     ENDIF
  776.     IF anzahl%>99
  777.       anzahl%=99
  778.     ENDIF
  779.     FOR i%=1 TO anzahl%
  780.       PRINT "Name von Spieler ";i%
  781.       FORM INPUT 25 AS name$(i%)
  782.     NEXT i%
  783.     IF sys!=0
  784.       PRINT "Wie oft soll jeder gegeneinander spielen ?"
  785.       wi$=STR$(wieoft%)
  786.       FORM INPUT 2 AS wi$
  787.       wieoft%=VAL(wi$)
  788.       CLS
  789.       FOR g%=1 TO wieoft%
  790.         ARRAYFILL gespielt!(),0
  791.         FOR u%=1 TO (anzahl%*anzahl%-anzahl%)/2
  792.           DO
  793.             m%=RANDOM(anzahl%)+1
  794.             h%=RANDOM(anzahl%)+1
  795.             EXIT IF m%<>h% AND gespielt!(m%,h%)=0 AND (m%<h% OR egal!=0)
  796.           LOOP
  797.           gespielt!(m%,h%)=-1
  798.           gespielt!(h%,m%)=-1
  799.           FOR f%=1 TO anzahl%
  800.             PRINT "Anzahl der gewonnen Spiele von ";name$(f%)," :";gewinn%(f%)
  801.             IF f%/23=FIX(f%/23)
  802.               VOID INP(2)
  803.             ENDIF
  804.           NEXT f%
  805.           PRINT
  806.           PRINT "Nächstes Spiel:"
  807.           PRINT
  808.           PRINT "1.Spieler :";name$(m%)
  809.           PRINT "2.Spieler :";name$(h%)
  810.           PRINT
  811.           PRINT "<< KLICK >>"
  812.           VOID INP(2)
  813.           @game
  814.           EXIT IF go_out_out!=TRUE
  815.         NEXT u%
  816.         EXIT IF go_out_out!=TRUE
  817.       NEXT g%
  818.     ELSE
  819.       runde%=0
  820.       sp%=0
  821.       DO
  822.         CLS
  823.         INC runde%
  824.         PRINT "In der ";runde%;". Runde sind noch folgende Spieler vertreten:"
  825.         FOR i%=1 TO anzahl%
  826.           IF gewinn%(i%)+1=runde%
  827.             PRINT name$(i%)
  828.             INC sp%
  829.             IF sp%/23=FIX(sp%/23)
  830.               VOID INP(2)
  831.             ENDIF
  832.           ENDIF
  833.         NEXT i%
  834.         EXIT IF sp%=<1
  835.         IF EVEN(sp%)=0
  836.           DO
  837.             m%=RANDOM(anzahl%)+1
  838.             EXIT IF gewinn%(m%)+1=runde%
  839.           LOOP
  840.           DEC sp%
  841.           INC gewinn%(m%)
  842.           PRINT
  843.           PRINT "Das Freilos hat:";name$(m%)
  844.           VOID INP(2)
  845.         ENDIF
  846.         ARRAYFILL gesp!(),0
  847.         DO
  848.           EXIT IF sp%=0
  849.           SUB sp%,2
  850.           DO
  851.             m%=RANDOM(anzahl%)+1
  852.             h%=RANDOM(anzahl%)+1
  853.             EXIT IF m%<>h% AND gewinn%(m%)+1=runde% AND gewinn%(h%)+1=runde% AND gesp!(m%)=0 AND gesp!(h%)=0 AND (m%<h% OR egal!=0)
  854.           LOOP
  855.           gesp!(m%)=-1
  856.           gesp!(h%)=-1
  857.           PRINT
  858.           PRINT "Nächstes Spiel:"
  859.           PRINT
  860.           PRINT "1.Spieler :";name$(m%)
  861.           PRINT "2.Spieler :";name$(h%)
  862.           PRINT
  863.           PRINT "<< KLICK >>"
  864.           VOID INP(2)
  865.           @game
  866.         LOOP
  867.       LOOP
  868.     ENDIF
  869.     CLS
  870.     PRINT "Die Gewinner stehen fest:"
  871.     PRINT
  872.     ARRAYFILL platzierung%(),1
  873.     ARRAYFILL gewinner%(),0
  874.     FOR i%=1 TO anzahl%
  875.       FOR g%=i% TO anzahl%
  876.         IF gewinn%(i%)<gewinn%(g%)
  877.           INC platzierung%(i%)
  878.         ELSE
  879.           IF gewinn%(i%)=gewinn%(g%)
  880.             INC platzierung%(g%)
  881.             DEC platzierung%(g%)
  882.           ELSE
  883.             INC platzierung%(g%)
  884.           ENDIF
  885.         ENDIF
  886.       NEXT g%
  887.     NEXT i%
  888.     FOR i%=1 TO anzahl%
  889.       gewinn%=0
  890.       FOR j%=1 TO anzahl%
  891.         IF platzierung%(j%)=i%
  892.           INC gewinn%
  893.           gewinner%(i%,gewinn%)=j%
  894.         ENDIF
  895.       NEXT j%
  896.     NEXT i%
  897.     FOR i%=anzahl% DOWNTO 1
  898.       IF gewinner%(i%,1)<>0
  899.         PRINT
  900.         PRINT i%;". Gewinner:"
  901.       ENDIF
  902.       k%=0
  903.       j%=0
  904.       DO
  905.         INC k%
  906.         EXIT IF gewinner%(i%,k%)=0
  907.         IF i%=1
  908.           INC j%
  909.           IF k%=1
  910.             CLS
  911.           ENDIF
  912.           DEFTEXT 1,6+EVEN(j%),0,26
  913.           TEXT 0,j%*30,name$(gewinner%(i%,k%))
  914.           IF j%=12
  915.             j%=0
  916.             CLS
  917.           ENDIF
  918.         ELSE
  919.           IF gewinn%(gewinner%(i%,k%))=1
  920.             PRINT name$(gewinner%(i%,k%));" mit einem Sieg."
  921.           ELSE
  922.             PRINT name$(gewinner%(i%,k%));" mit ";gewinn%(gewinner%(i%,k%));" Siegen."
  923.           ENDIF
  924.         ENDIF
  925.         IF i%=anzahl%
  926.           PRINT "LOSER  !!!"
  927.         ENDIF
  928.         VOID INP(2)
  929.       LOOP
  930.     NEXT i%
  931.     DEFTEXT 1,0,0,26
  932.     IF gewinn%(gewinner%(1,1))=1
  933.       IF k%=2
  934.         TEXT 0,j%*30+30,640,"ist mit einem Sieg der große Gewinner."
  935.       ELSE
  936.         TEXT 0,j%*30+30,640,"sind mit jeweils einem Sieg die großen Gewinner."
  937.       ENDIF
  938.     ELSE
  939.       IF k%=2
  940.         TEXT 0,j%*30+30,640,"ist mit "+STR$(gewinn%(gewinner%(1,1)))+" Siegen der große Gewinner."
  941.       ELSE
  942.         TEXT 0,j%*30+30,640,"sind mit jeweils "+STR$(gewinn%(gewinner%(1,1)))+" Siegen die großen Gewinner."
  943.       ENDIF
  944.     ENDIF
  945.     DEFTEXT 1,0,0,26
  946.     TEXT 0,j%*30+60,640,"SUPER! CONGRATULATIONS! SPITZENKLASSE! TOLL!"
  947.     VOID INP(2)
  948.     DEFTEXT 1,0,0,13
  949.     IF go_out_out!=TRUE AND sys!=0
  950.       CLS
  951.       PRINT "Allerdings ist das Ergebnis nicht so ganz gerecht, da abgebrochen wurde."
  952.       VOID INP(2)
  953.     ENDIF
  954.   ENDIF
  955.   @hprogramm
  956. RETURN
  957. PROCEDURE game
  958.   DEFLINE 1,5,0,0
  959.   CLS
  960.   BOX 1,21,659,399
  961.   go_out!=FALSE
  962.   ARRAYFILL feld!(),0
  963.   richtung_x%(1)=1
  964.   richtung_x%(2)=-1
  965.   IF fu%>0 AND hind%>=0
  966.     ARRAYFILL es!(),0
  967.     FOR i%=1 TO fu%
  968.       x%=RANDOM(159)+1
  969.       y%=RANDOM(93)+6
  970.       es!(x%,y%)=-1
  971.       PUT x%*4,y%*4,c$
  972.     NEXT i%
  973.   ENDIF
  974.   IF hind%<>0
  975.     IF hind%=-1
  976.       fu!=0
  977.       FOR i%=k_x% TO g_x%
  978.         an%=0
  979.         FOR t%=k_y% TO g_y%
  980.           IF hind!(i%,t%)=-1
  981.             INC an%
  982.             feld!(i%,t%)=-1
  983.             PUT i%*4,t%*4,b$
  984.           ENDIF
  985.           IF es!(i%,t%)=-1
  986.             fu!=-1
  987.             INC an%
  988.             PUT i%*4,t%*4,c$
  989.           ENDIF
  990.           EXIT IF an%=h_anzahl%(i%)
  991.         NEXT t%
  992.       NEXT i%
  993.     ELSE
  994.       FOR i%=1 TO hind%
  995.         x%=RANDOM(159)+1
  996.         y%=RANDOM(93)+6
  997.         IF y%<>52
  998.           feld!(x%,y%)=-1
  999.           PUT x%*4,y%*4,b$
  1000.         ELSE
  1001.           DEC i%
  1002.         ENDIF
  1003.       NEXT i%
  1004.     ENDIF
  1005.   ENDIF
  1006.   IF ueben!=0
  1007.     FOR i%=1 TO 2
  1008.       IF fu!=-1
  1009.         fuu%(i%)=0
  1010.         futter%(i%)=efutter%
  1011.       ENDIF
  1012.       speed%(i%)=1
  1013.       richtung_y%(i%)=0
  1014.       position_x%(i%)=80
  1015.       position_y%(i%)=52
  1016.     NEXT i%
  1017.     PUT 316,208,a$,6
  1018.     FOR i%=9 DOWNTO 0
  1019.       SOUND 1,10,10,4
  1020.       PAUSE 5
  1021.       SOUND 0,0
  1022.       PAUSE 3
  1023.       PRINT AT(10,1),i%
  1024.       PUT 316,208,a$,6
  1025.       PUT 324,208,a$,6
  1026.     NEXT i%
  1027.     SOUND 1,0
  1028.     IF fu!=0
  1029.       PRINT AT(1,1);name$(m%),,,name$(h%)
  1030.     ELSE
  1031.       PRINT AT(1,1);name$(m%);" ";futter%(2);" ",,,name$(h%);" ";futter%(1);" "
  1032.     ENDIF
  1033.   ELSE
  1034.     PUT 324,208,a$
  1035.     IF fu!=-1
  1036.       fuu%(1)=0
  1037.       futter%(1)=efutter%
  1038.     ENDIF
  1039.     vollgefress!=0
  1040.     speed%(1)=1
  1041.     richtung_y%(1)=0
  1042.     position_x%(1)=80
  1043.     position_y%(1)=52
  1044.     FOR i%=9 DOWNTO 0
  1045.       SOUND 1,10,10,4
  1046.       PAUSE 5
  1047.       SOUND 0,0
  1048.       PAUSE 3
  1049.       PRINT AT(10,1),i%
  1050.       PUT 324,208,a$,6
  1051.     NEXT i%
  1052.     SOUND 1,0
  1053.   ENDIF
  1054.   IF joy!=-1
  1055.     joy$=CHR$(&H14)
  1056.     VOID XBIOS(&H19,3,L:VARPTR(joy$))
  1057.     joy1adr%=XBIOS(34)+60
  1058.     joy2adr%=XBIOS(34)+61
  1059.   ENDIF
  1060.   DO
  1061.     go_out!=FALSE
  1062.     play_1!=0
  1063.     play_2!=0
  1064.     IF joy!=-1
  1065.       speed%(1)=1
  1066.       speed%(2)=1
  1067.     ENDIF
  1068.     FOR i%=0 TO pause%
  1069.       IF joy!=0
  1070.         key$=INKEY$
  1071.         key$=UPPER$(key$)
  1072.         IF key$<>""
  1073.           IF play_1!=0
  1074.             IF richtung_y%(1)=0
  1075.               IF key$="2"
  1076.                 play_1!=-1
  1077.                 richtung_x%(1)=0
  1078.                 richtung_y%(1)=1
  1079.               ENDIF
  1080.               IF key$="8"
  1081.                 play_1!=-1
  1082.                 richtung_x%(1)=0
  1083.                 richtung_y%(1)=-1
  1084.               ENDIF
  1085.             ENDIF
  1086.             IF richtung_x%(1)=0
  1087.               IF key$="4"
  1088.                 play_1!=-1
  1089.                 richtung_x%(1)=-1
  1090.                 richtung_y%(1)=0
  1091.               ENDIF
  1092.               IF key$="6"
  1093.                 play_1!=-1
  1094.                 richtung_x%(1)=1
  1095.                 richtung_y%(1)=0
  1096.               ENDIF
  1097.             ENDIF
  1098.           ENDIF
  1099.           IF play_2!=0
  1100.             IF richtung_y%(2)=0
  1101.               IF key$="Y"
  1102.                 play_2!=-1
  1103.                 richtung_x%(2)=0
  1104.                 richtung_y%(2)=1
  1105.               ENDIF
  1106.               IF key$="W"
  1107.                 play_2!=-1
  1108.                 richtung_x%(2)=0
  1109.                 richtung_y%(2)=-1
  1110.               ENDIF
  1111.             ENDIF
  1112.             IF richtung_x%(2)=0
  1113.               IF key$="A"
  1114.                 play_2!=-1
  1115.                 richtung_x%(2)=-1
  1116.                 richtung_y%(2)=0
  1117.               ENDIF
  1118.               IF key$="S"
  1119.                 play_2!=-1
  1120.                 richtung_x%(2)=1
  1121.                 richtung_y%(2)=0
  1122.               ENDIF
  1123.             ENDIF
  1124.           ENDIF
  1125.           IF key$="1"
  1126.             speed%(1)=3
  1127.           ENDIF
  1128.           IF key$="X"
  1129.             speed%(2)=3
  1130.           ENDIF
  1131.           IF key$="3"
  1132.             speed%(1)=1
  1133.           ENDIF
  1134.           IF key$="<"
  1135.             speed%(2)=1
  1136.           ENDIF
  1137.           key$=""
  1138.         ENDIF
  1139.       ELSE
  1140.         joy1%=PEEK(joy1adr%)
  1141.         joy2%=PEEK(joy2adr%)
  1142.         IF joy1%<>0 AND play_1!=0
  1143.           play_1!=-1
  1144.           IF richtung_y%(1)=0
  1145.             IF joy1%=2
  1146.               richtung_x%(1)=0
  1147.               richtung_y%(1)=1
  1148.             ENDIF
  1149.             IF joy1%=1
  1150.               richtung_x%(1)=0
  1151.               richtung_y%(1)=-1
  1152.             ENDIF
  1153.           ENDIF
  1154.           IF richtung_x%(1)=0
  1155.             IF joy1%=4
  1156.               richtung_x%(1)=-1
  1157.               richtung_y%(1)=0
  1158.             ENDIF
  1159.             IF joy1%=8
  1160.               richtung_x%(1)=1
  1161.               richtung_y%(1)=0
  1162.             ENDIF
  1163.           ENDIF
  1164.         ENDIF
  1165.         IF joy2%<>0 AND play_2!=0
  1166.           play_2!=-1
  1167.           IF richtung_y%(2)=0
  1168.             IF joy2%=2
  1169.               richtung_x%(2)=0
  1170.               richtung_y%(2)=1
  1171.             ENDIF
  1172.             IF joy2%=1
  1173.               richtung_x%(2)=0
  1174.               richtung_y%(2)=-1
  1175.             ENDIF
  1176.           ENDIF
  1177.           IF richtung_x%(2)=0
  1178.             IF joy2%=4
  1179.               richtung_x%(2)=-1
  1180.               richtung_y%(2)=0
  1181.             ENDIF
  1182.             IF joy2%=8
  1183.               richtung_x%(2)=1
  1184.               richtung_y%(2)=0
  1185.             ENDIF
  1186.           ENDIF
  1187.         ENDIF
  1188.         IF joy1%=128
  1189.           speed%(1)=3
  1190.         ENDIF
  1191.         IF joy2%=128
  1192.           speed%(2)=3
  1193.         ENDIF
  1194.       ENDIF
  1195.     NEXT i%
  1196.     FOR i%=1 TO 2
  1197.       EXIT IF ueben!=-1 AND i%=2
  1198.       FOR t%=1 TO speed%(i%)
  1199.         ADD position_x%(i%),richtung_x%(i%)
  1200.         ADD position_y%(i%),richtung_y%(i%)
  1201.         IF fu!=-1
  1202.           INC fuu%(i%)
  1203.           IF fuu%(i%)=tfutter%
  1204.             DEC futter%(i%)
  1205.             fuu%(i%)=0
  1206.             IF ueben!=0
  1207.               PRINT AT(1,1);name$(m%);" ";futter%(2);" ",,,name$(h%);" ";futter%(1);" "
  1208.             ELSE
  1209.               PRINT AT(1,1),,,name$(2);" ";futter%(1);" "
  1210.             ENDIF
  1211.           ENDIF
  1212.           IF es!(position_x%(i%),position_y%(i%))
  1213.             INC futter%(i%)
  1214.             IF ueben!=0
  1215.               PRINT AT(1,1);name$(m%);" ";futter%(2);" ",,,name$(h%);" ";futter%(1);" "
  1216.             ELSE
  1217.               PRINT AT(1,1),,,name$(2);" ";futter%(1);" "
  1218.             ENDIF
  1219.             IF futter%(i%)>=hfutter%
  1220.               IF ueben!=0
  1221.                 IF i%=1
  1222.                   futter%(2)=-10
  1223.                 ELSE
  1224.                   futter%(1)=-10
  1225.                 ENDIF
  1226.               ELSE
  1227.                 futter%(1)=-1
  1228.                 vollgefress!=-1
  1229.               ENDIF
  1230.             ENDIF
  1231.           ENDIF
  1232.         ENDIF
  1233.         IF feld!(position_x%(i%),position_y%(i%))<>0 OR position_x%(i%)<1 OR position_x%(i%)>159 OR position_y%(i%)<6 OR position_y%(i%)>98 OR (futter%(i%)=<0 AND fu!=-1)
  1234.           IF position_y%(1)=position_y%(2) AND position_x%(1)=position_x%(2)
  1235.             PRINT AT(1,1),"Beide verloren !                          "
  1236.           ELSE
  1237.             IF ueben!=0
  1238.               IF i%=1
  1239.                 ii%=m%
  1240.               ELSE
  1241.                 ii%=h%
  1242.               ENDIF
  1243.               INC gewinn%(ii%)
  1244.               PRINT AT(1,1);name$(ii%);" hat gewonnen !                    << SPACE >>    "
  1245.             ELSE
  1246.               IF vollgefress!=0
  1247.                 PRINT AT(1,1);"Und Tschüß !              << SPACE >>"
  1248.               ELSE
  1249.                 PRINT AT(1,1);"Du hast genug gefressen ! << SPACE >>"
  1250.               ENDIF
  1251.             ENDIF
  1252.           ENDIF
  1253.           DO
  1254.             k$=INKEY$
  1255.             IF k$=" " OR ASC(k$)=27
  1256.               go_out!=TRUE
  1257.               IF ASC(k$)=27
  1258.                 go_out_out!=TRUE
  1259.               ENDIF
  1260.             ENDIF
  1261.             k$=""
  1262.             EXIT IF go_out!=TRUE
  1263.           LOOP
  1264.         ENDIF
  1265.         feld!(position_x%(i%),position_y%(i%))=-1
  1266.         PUT position_x%(i%)*4,position_y%(i%)*4,a$
  1267.         EXIT IF go_out!=TRUE
  1268.       NEXT t%
  1269.       EXIT IF go_out!=TRUE
  1270.     NEXT i%
  1271.     EXIT IF go_out!=TRUE
  1272.   LOOP
  1273.   IF joy!=-1
  1274.     joy$=CHR$(&H15)
  1275.     maus$=CHR$(&H8)
  1276.     VOID XBIOS(&H19,3,L:VARPTR(joy$))
  1277.     VOID XBIOS(&H19,3,L:VARPTR(maus$))
  1278.   ENDIF
  1279.   CLS
  1280. RETURN
  1281. PROCEDURE fpara
  1282.   SGET bild3$
  1283.   tfutter$=STR$(tfutter%)
  1284.   efutter$=STR$(efutter%)
  1285.   hfutter$=STR$(hfutter%)
  1286.   PRINT "Wieviel Reserve besitzt jede Schlange zu Beginn ?"
  1287.   FORM INPUT 4 AS efutter$
  1288.   PRINT "Wieviel Züge pro Abzug ?"
  1289.   FORM INPUT 3 AS tfutter$
  1290.   PRINT "Ab wieviel Potential hat eine Schlange gewonnen ?"
  1291.   FORM INPUT 4 AS hfutter$
  1292.   tfutter%=VAL(tfutter$)
  1293.   efutter%=VAL(efutter$)
  1294.   hfutter%=VAL(hfutter$)
  1295.   SPUT bild3$
  1296. RETURN
  1297. PROCEDURE hmen
  1298.   RESTORE hmenue
  1299.   FOR i%=0 TO 32
  1300.     READ writ$
  1301.     IF i%=20
  1302.       VOID INP(2)
  1303.     ENDIF
  1304.     PRINT writ$
  1305.   NEXT i%
  1306. RETURN
  1307. PROCEDURE hspiel
  1308.   RESTORE hspiel
  1309.   FOR i%=0 TO 19
  1310.     READ writ$
  1311.     PRINT writ$
  1312.   NEXT i%
  1313. RETURN
  1314. PROCEDURE heditor
  1315.   RESTORE heditor
  1316.   FOR i%=0 TO 10
  1317.     READ writ$
  1318.     PRINT writ$
  1319.   NEXT i%
  1320. RETURN
  1321. m.datas:
  1322. DATA  Desk ,  Info   ,-,-,-,-,-,-,""
  1323. DATA  Datei ,  Start ,----- Feld -----,  Edieren,- - - - - - - -,  Laden,  Speichern,----------------,  Quit ,""
  1324. DATA  Tempo ,  Eingabe,----------------,  Hyperschnell,  Schnell,  Lasch,  Lahm   ,  Schneckentempo,""
  1325. DATA  Barierren ,  Keine,--- Zufall ----,  Eingabe,- - - - - - - -,  Wenige,  'n paar,  Einige,  Viele,  Sehr Viele,---------------,  Edierte,""
  1326. DATA  Futter ,  Keins,--- Zufall ----,  Eingabe,- - - - - - - -,  Kaum,  Etwas,  Einiges,  Mehr,  Noch mehr,---------------,  Parameter,""
  1327. DATA  Extras ,  KO-System,  Jeder gegen Jeden,  Üben,----------------------,  Feste Positionen,-----  STEUERUNG -----,  Joystick,  Tastatur,""
  1328. hmenue:
  1329. DATA  Die Erkärung von den Menüpunkten:
  1330. DATA
  1331. DATA  Desk
  1332. DATA   Info         Hier wird ein kurzes Demo gezeigt.
  1333. DATA  Datei
  1334. DATA   Start        Hier wird das Spiel mit den eingestellte Parametern gestartet.
  1335. DATA   Edieren      Hier kann man das Feld edieren (Hindernisse und Futterpunkte)
  1336. DATA   Laden        Und hier kann man das Spielfeld laden
  1337. DATA   Speichern    Und hier speichern
  1338. DATA   Quit         Bei diesem Menüpunkt kann man das Spiel verlassen.
  1339. DATA  Tempo
  1340. DATA   Eingabe      Hier kann man die Geschwindigkeit eingeben.
  1341. DATA   Hyperschnell Bei diesen Punkten kann man eine Geschwindigkeit angeklicken.
  1342. DATA   usw.
  1343. DATA  Barrieren
  1344. DATA "  Keine        Falls der Menüpunkt aktiv ist, werden keine Hindernisse gesetzt."
  1345. DATA   Eingabe      Hier wird die Anzahl zufällig verteilter Hindernisse eingegeben.
  1346. DATA   Wenige       Und hier kann man die Anzahl deren anklicken.
  1347. DATA   usw.
  1348. DATA   Edierte      Hier wird das geladene bzw. edierte als Hinderniss bestimmt.
  1349. DATA  Futter
  1350. DATA   Keine        Keine Futterpunkte
  1351. DATA   Eingabe      Hier wird Anzahl zufälliger verteilter Futterpunkte eingegeben
  1352. DATA   Kaum         Bei diesen Punkten kann man die Anzahl anklicken
  1353. DATA   usw.
  1354. DATA   Parameter    Hier werden die Parameter für das Futter eingegeben
  1355. DATA  Extras
  1356. DATA   KO-System    Hier wird als Spielsystem das KO-System bestimmt.
  1357. DATA   Jeder...     Und hier wird als Spielsystem Jeder gegen Jeden bestimmt.
  1358. DATA "  Üben         Hier kann üben, d.h. nur ein Spieler, eingestellt werden."
  1359. DATA "  Feste..      Ist dieser Punkt aktiv, so spielt der zuerst Eingegebene links."
  1360. DATA   Joystick     Hier wird als Eingabegerät im Spiel der Joystick bestimmt.
  1361. DATA   Tastatur     Und bei diesem Punkt die Tastatur für die Steuerung bestimmt.
  1362. hspiel:
  1363. DATA Während des Spieles sind folgende Tasten möglich:
  1364. DATA
  1365. DATA Für den 1.Spieler:
  1366. DATA  w   für oben
  1367. DATA  a   für links
  1368. DATA  s   für rechts
  1369. DATA  y   für unten
  1370. DATA  x   für hohe Geschwindigkeit
  1371. DATA  <   für normale Geschwindigkeit
  1372. DATA Für den 2.Spieler:
  1373. DATA  8   für oben
  1374. DATA  4   für links
  1375. DATA  6   für rechts
  1376. DATA  2   für unten
  1377. DATA  1   für hohe Geschwindigkeit
  1378. DATA  3   für normale Geschwindigkeit
  1379. DATA "Dies alles natülich nur, wenn als Steuerung die Tastatur eingestellt wurde."
  1380. DATA "Bei der Joysticksteuerung ist zu ergänzen,daß die hohe Geschwindigkeit nur beim"
  1381. DATA "Drücken des Feuerknopfs aktiv ist.
  1382. DATA "Nach dem Spiel kann man, außer im KO-System, mit ESC statt Space abbrechen."
  1383. heditor:
  1384. DATA Beim Edieren ist folgendes erlaubt:
  1385. DATA  Linker Mausklick     Setzten eines Hindernisses bzw. Futtterpunktes
  1386. DATA  Rechter Mausklick    Löschen eines Hindernisse oder Futterpunktes
  1387. DATA  m                    Wechsel zwischen Hinderniss und Futterpunkte
  1388. DATA  c                    Alles Löschen
  1389. DATA  f                    Löschen aller Futterpunkte
  1390. DATA  h                    Löschen aller Hindernisse
  1391. DATA  p                    Anzeige der Koordinate
  1392. DATA  y                    Spiegeln der oberen Hälfte nach unten
  1393. DATA  x                    Spiegeln der linken Hälfte nach rechts
  1394. DATA  Space                Verlassen diese Teils
  1395.